Towards Computer-Supported Collaborative Software Engineering
نویسنده
چکیده
Software engineering is a fundamentally collaborative activity, yet most tools that support software engineers are designed only for single users. There are many foreseen benefits in using tools that support real time collaboration between software engineers, such as avoiding conflicting concurrent changes to source files and determining the impact of program changes immediately. Unfortunately, it is difficult to develop non-trivial tools that support real time Collaborative Software Engineering (CSE). Accordingly, the few CSE tools that do exist have restricted capabilities. Given the availability of powerful desktop workstations and recent advances in distributed computing technology, it is now possible to approach the challenges of CSE from a new perspective. The research goal in this thesis is to investigate mechanisms for supporting real time CSE, and to determine the potential gains for developers from the use of CSE tools. An infrastructure, Caise, is presented which supports the rapid development of real time CSE tools that were previously unobtainable, based on patterns of collaboration evident within software engineering. In this thesis, I discuss important design aspects of CSE tools, including the identification of candidate patterns of collaboration. I describe the Caise approach to supporting small teams of collaborating software engineers. This is by way of a shared semantic model of software, protocol for tool communication, and Computer Supported Collaborative Work (CSCW) facilities. I then introduce new types of synchronous semantic model-based tools that support various patterns of CSE. Finally, I present empirical and heuristic evaluations of typical development scenarios. Given the Caise infrastructure, it is envisaged that new aspects of collaborative work within software engineering can be explored, allowing the perceived benefits of CSE to be fully realised.
منابع مشابه
Grid Computing and Component-Based Software Engineering in Computer Supported Collaborative Learning
This paper presents our research efforts towards enabling the use of grid infrastructures for supporting Computer Supported Collaborative Learning (CSCL) applications developed according to the principles of ComponentBased Software Engineering (CBSE). An illustrative example of a gridsupported component-based collaborative learning application is presented and discussed. This discussion leads t...
متن کاملTowards an Agent-supported Online Assembly: Prototyping a Collaborative Decision-Making Tool
The promise of online assemblies has been present for years already, and a diversity of tools have attempted to fulfill it. This work aims to reapproach the issue from a novel standpoint that relies on a federated architecture, a real-time collaborative environment, goal-oriented software agents and a consensus-based methodology. Consensuall is a prototype of consensual decision-making collabor...
متن کاملSoftware Development and Integration in a Computer Supported Cooperative Work Environment
SUMMARY This paper presents a prototype computer supported cooperative work (CSCW) environment that supports the engineering design process. In particular, this environment provides collaborative tools that support computer-aided design (CAD) and computer-aided software engineering (CASE). This paper takes an high level look at the system as a whole and then focuses on the method used to implem...
متن کاملRefactoring the Publishing Process
This paper dicusses how the technical book publishing process could address time to market and eBook issues through the adaptation of collaborative software engineering processes to the entire publishing process, from the initial authoring to the final preflight stages. We identify where, based on our own observations, the current process is flawed, then explore how it can be improved. While so...
متن کاملAn Extensible Framework for Collaborative Software Engineering
The size, complexity and duration of typical software engineering projects means that teams of developers will work on them. However, with the exception of version control systems, the editors, diagrammers and other tools used will generally support only a single user. In this paper, we present an architecture for bringing to software engineering development environments the advantages of aware...
متن کامل